//
// Created by Tiany on 2021/6/22.
//

#ifndef SHUJUJIEGOU_LINKQUEUE_H
#define SHUJUJIEGOU_LINKQUEUE_H

//数据结构
struct DataType {
    int n;
};

//结点结构
struct Node;
typedef struct Node *PNode;
struct Node {/*单个队列结点结构*/
    struct DataType info;
    PNode link;
};

//队列结构
struct LinkQueue {
    PNode f;/*头指针*/
    PNode r;/*尾指针*/
};
typedef struct LinkQueue *PLinkQueue;/*链表队列的指针类型*/

//创建空队列
PLinkQueue createEmptyQueue_link(void);

//判断队列是否为空
int isEmptyQueue_link(PLinkQueue pLinkQueue);

//入队
void enQueue_link(PLinkQueue pLinkQueue, struct DataType x);

//出队
void deQueue_link(PLinkQueue pLinkQueue);

//取队列的头元素
struct DataType frontQueue_link(PLinkQueue pLinkQueue);

//数据写入队列
void writeInQueue_link(PLinkQueue pLinkQueue, struct DataType x[], int length);

//读出队列所以元素
void readAllQueue_link(PLinkQueue pLinkQueue);


#endif //SHUJUJIEGOU_LINKQUEUE_H
